package oj;

import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;

public class Day13S {
    public static void main(String[] args) {
        Scanner sc=new Scanner(System.in);
        int n=sc.nextInt();
        int m=sc.nextInt();
        int[] dp=new int[m+1];
        for (int i = 0; i < m+1; i++) {
            dp[i]=Integer.MAX_VALUE;
        }
        dp[n]=0;
        for (int i = n; i <m ; i++) {
            if(dp[i]==Integer.MAX_VALUE){
                continue;
            }
            //求i的约数
            List<Integer> list=div(n);
            for (int j:list){
                //j表示此时我们一步可以跳几个石板
                if(i+j<=m && dp[i]!=Integer.MAX_VALUE){
                    dp[i+j]=Math.min(dp[i]+1,dp[i+j]);
                }else if(i+j<m){
                    dp[i+j]=dp[i]+1;
                }
            }
        }
        if(dp[m]==Integer.MAX_VALUE){
            System.out.println(-1);
        }else {
            System.out.println(dp[m]);
        }
    }
    public static List<Integer> div(int num){
        List<Integer> list=new ArrayList<>();
        for (int i = 2; i * i<= num ; i++) {
            if(num%i==0){
                list.add(i);
                if(num/i!=i){
                    list.add(num/i);
                }
            }
        }
        return list;
    }
}
